package com.yunxi.dao.order;

import com.yunxi.core.dao.BaseMapperPlus;
import com.yunxi.model.order.*;
import com.yunxi.order.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 车辆订单 Mapper 接口
 * </p>
 *
 * @author chenmeng
 * @since 2019-05-07
 */
public interface OrderVehicleCustomerMapper extends BaseMapperPlus<OrderVehicle> {

     List<OrderVehicleManagerDetailsRespVO> queryOrderForPage(OrderVehicleManagerDetailsReqVO vo);

     List<OrderVehicleManagerDetailsRespVO> queryOrderApproveForPage(OrderVehicleManagerDetailsReqVO vo);

    /**
     * 订单导出
     *
     * @param vo 查询条件
     * @return ApiResult∂
     */
    List<OrderVehicleExportVO> orderExport(OrderVehicleManagerDetailsReqVO vo);

     List<OrderVehicleManagerDetailsRespVO> queryOrderApproveMatchCarForPage(OrderVehicleManagerDetailsReqVO vo);

     List<OrderVehicleManagerDetailsRespVO> queryOrderApproveCheckForPage(OrderVehicleManagerDetailsReqVO vo);

     List<OrderVehicleManagerDetailsRespVO> queryOrderApprovePrioritySettingForPage(OrderVehicleManagerDetailsReqVO vo);

     OrderApproveDetails queryOrderApproveDetails(OrderApproveDetailsReqVO vo);

     List<StockResourceRespVO> queryStockResource(StockOrProductionLineResourceReqVO vo);

     List<ProductionLineResourceRespVO> queryProductionLineResource(StockOrProductionLineResourceReqVO vo);

     OrderVehicleDetailsRespVO queryOrderVehicleDetails(OrderVehicleDetailsReqVO vo);

     String queryStockAddrByVin(String vin);

     List<OrderVehicleVO> relatePageList(Map map);

    void bandCustomOrderNoByOrderId(OrderVehicle ov);

    void unBandCustomOrderNo(@Param("orderCustomerNo") String orderCustomerNo, @Param("updateBy") String updateBy);

    List<CustomerOrderMatchVO> queryCustomerOrderMatchVO();

    List<NoMatchCarOrderForDownloadRespVO> queryNoMatchCarOrderForDownload();

    List<OrderVehicleDeliveryRespVO> listVehicleDeliveryInfo(OrderVehicleDeliveryReqVO reqVO);

    List<OrderVehicleInStockRespVO> listVehicleInStock(OrderVehicleInStockReqVO reqVO);

    OrderVehicle matchVipOrder(String orderCustomerNo);

    void unband(String orderCarId);

    List<ProductionLineResourceRespVO> pageProductionLineResourceByVehicleCode(StockOrProductionLineResourceReqVO vo);

    List<StockResourceRespVO> queryStockResourceByVehicleCode(StockOrProductionLineResourceReqVO vo);

    List<OrderVehicleManagerDetailsRespVO> queryOrderApproveCheckForPageVip(OrderVehicleManagerDetailsReqVO vo);

    void cleanCustomOrderNo(String orderCarId);

    List<OrderVehicleManagerDetailsRespVO> queryOrderApproveCheckExpienceForPage(OrderVehicleManagerDetailsReqVO vo);

    OrderVehicle loadByVin(String vin);

}
